﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Services;
using System.Xml;
using UygulamaYetkiService.Classes;

namespace UygulamaYetkiService
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]

    public class UygulamaYetkiServis : System.Web.Services.WebService
    {
        [WebMethod(Description = "KullaniciKaydet")]
        public Kullanici KullaniciKaydet(Kullanici kullanici)
        {
            using (KullaniciDAO kullaniciDAO = new KullaniciDAO())
            {
                return kullaniciDAO.KullaniciKaydet(kullanici);
            }
        }

        [WebMethod(Description = "KullaniciGiris")]
        public Kullanici KullaniciGiris(string kullaniciKodu, string kullaniciSifre)
        {
            using (KullaniciDAO kullaniciDAO = new KullaniciDAO())
            {
                return kullaniciDAO.KullaniciGiris(kullaniciKodu, kullaniciSifre);
            }
        }

        [WebMethod(Description = "KullaniciGuncelle")]
        public Kullanici KullaniciGuncelle(Kullanici kullanici)
        {
            using (KullaniciDAO kullaniciDAO = new KullaniciDAO())
            {
                return kullaniciDAO.KullaniciGuncelle(kullanici);
            }
        }

        [WebMethod(Description = "KullaniciSifreGuncelle")]
        public bool KullaniciSifreGuncelle(long ID, string sifre)
        {
            using (KullaniciDAO kullaniciDAO = new KullaniciDAO())
            {
                return kullaniciDAO.KullaniciSifreGuncelle(ID, sifre);
            }
        }

        [WebMethod(Description = "KullaniciSorgula")]
        public Kullanici KullaniciSorgula(string kullaniciKodu)
        {
            using (KullaniciDAO kullaniciDAO = new KullaniciDAO())
            {
                return kullaniciDAO.KullaniciSorgula(kullaniciKodu);
            }
        }

        [WebMethod(Description = "KullaniciGetir")]
        public List<Kullanici> KullaniciGetir()
        {
            using (KullaniciDAO kullaniciDAO = new KullaniciDAO())
            {
                return kullaniciDAO.KullaniciGetir();
            }
        }

        [WebMethod(Description = "AktifKullaniciGetir")]
        public List<DonusTip> AktifKullaniciGetir()
        {
            using (KullaniciDAO kullaniciDAO = new KullaniciDAO())
            {
                return kullaniciDAO.AktifKullaniciGetir();
            }
        }

        [WebMethod(Description = "KullaniciGetirbyID")]
        public Kullanici KullaniciGetirbyID(long id)
        {
            using (KullaniciDAO kullaniciDAO = new KullaniciDAO())
            {
                return kullaniciDAO.KullaniciGetirbyID(id);
            }
        }

        [WebMethod(Description = "KullaniciVarMiKontrol")]
        public bool KullaniciVarMiKontrol(string kodu)
        {
            using (KullaniciDAO kullaniciDAO = new KullaniciDAO())
            {
                return kullaniciDAO.KullaniciVarMiKontrol(kodu);
            }
        }

        [WebMethod(Description = "GrupKaydet")]
        public Grup GrupKaydet(Grup grup)
        {
            using (GrupDAO grupDAO = new GrupDAO())
            {
                return grupDAO.GrupKaydet(grup);
            }
        }

        [WebMethod(Description = "GrupGuncelle")]
        public Grup GrupGuncelle(Grup grup)
        {
            using (GrupDAO grupDAO = new GrupDAO())
            {
                return grupDAO.GrupGuncelle(grup);
            }
        }

        [WebMethod(Description = "GrupSil")]
        public bool GrupSil(Grup grup)
        {
            using (GrupDAO grupDAO = new GrupDAO())
            {
                return grupDAO.GrupSil(grup);
            }
        }

        [WebMethod(Description = "GrupGetir")]
        public List<Grup> GrupGetir()
        {
            using (GrupDAO grupDAO = new GrupDAO())
            {
                return grupDAO.GrupGetir();
            }
        }

        [WebMethod(Description = "GrupGetirbyID")]
        public Grup GrupGetirbyID(long id)
        {
            using (GrupDAO grupDAO = new GrupDAO())
            {
                return grupDAO.GrupGetirbyID(id);
            }
        }

        [WebMethod(Description = "GrupVarMiKontrol")]
        public bool GrupVarMiKontrol(string adi)
        {
            using (GrupDAO grupDAO = new GrupDAO())
            {
                return grupDAO.GrupVarMiKontrol(adi);
            }
        }

        [WebMethod(Description = "FonksiyonKaydet")]
        public Fonksiyon FonksiyonKaydet(Fonksiyon fonksiyon)
        {
            using (FonksiyonDAO fonksiyonDAO = new FonksiyonDAO())
            {
                return fonksiyonDAO.FonksiyonKaydet(fonksiyon);
            }
        }

        [WebMethod(Description = "FonksiyonGuncelle")]
        public Fonksiyon FonksiyonGuncelle(Fonksiyon fonksiyon)
        {
            using (FonksiyonDAO fonksiyonDAO = new FonksiyonDAO())
            {
                return fonksiyonDAO.FonksiyonGuncelle(fonksiyon);
            }
        }

        [WebMethod(Description = "FonksiyonSil")]
        public bool FonksiyonSil(Fonksiyon fonksiyon)
        {
            using (FonksiyonDAO fonksiyonDAO = new FonksiyonDAO())
            {
                return fonksiyonDAO.FonksiyonSil(fonksiyon);
            }
        }

        [WebMethod(Description = "FonksiyonGetir")]
        public List<Fonksiyon> FonksiyonGetir()
        {
            using (FonksiyonDAO fonksiyonDAO = new FonksiyonDAO())
            {
                return fonksiyonDAO.FonksiyonGetir();
            }
        }

        [WebMethod(Description = "FonksiyonGetirbyID")]
        public Fonksiyon FonksiyonGetirbyID(long id)
        {
            using (FonksiyonDAO fonksiyonDAO = new FonksiyonDAO())
            {
                return fonksiyonDAO.FonksiyonGetirbyID(id);
            }
        }

        [WebMethod(Description = "FonksiyonVarMiKontrol")]
        public bool FonksiyonVarMiKontrol(string adi)
        {
            using (FonksiyonDAO fonksiyonDAO = new FonksiyonDAO())
            {
                return fonksiyonDAO.FonksiyonVarMiKontrol(adi);
            }
        }

        [WebMethod(Description = "GrupYetkiKaydet")]
        public GrupYetki GrupYetkiKaydet(GrupYetki grupYetki)
        {
            using (GrupYetkiDAO grupYetkiDAO = new GrupYetkiDAO())
            {
                return grupYetkiDAO.GrupYetkiKaydet(grupYetki);
            }
        }

        [WebMethod(Description = "GrupYetkiGuncelle")]
        public GrupYetki GrupYetkiGuncelle(GrupYetki grupYetki)
        {
            using (GrupYetkiDAO grupYetkiDAO = new GrupYetkiDAO())
            {
                return grupYetkiDAO.GrupYetkiGuncelle(grupYetki);
            }
        }

        [WebMethod(Description = "GrupYetkiSil")]
        public bool GrupYetkiSil(GrupYetki grupYetki)
        {
            using (GrupYetkiDAO grupYetkiDAO = new GrupYetkiDAO())
            {
                return grupYetkiDAO.GrupYetkiSil(grupYetki);
            }
        }

        [WebMethod(Description = "GrupYetkiGetir")]
        public List<GrupYetki> GrupYetkiGetir()
        {
            using (GrupYetkiDAO grupYetkiDAO = new GrupYetkiDAO())
            {
                return grupYetkiDAO.GrupYetkiGetir();
            }
        }

        [WebMethod(Description = "GrupYetkiGetirbyID")]
        public GrupYetki GrupYetkiGetirbyID(long id)
        {
            using (GrupYetkiDAO grupYetkiDAO = new GrupYetkiDAO())
            {
                return grupYetkiDAO.GrupYetkiGetirbyID(id);
            }
        }

        [WebMethod(Description = "GrupYetkiVarMiKontrolYeni")]
        public bool GrupYetkiVarMiKontrolYeni(long grupID, string fonksiyonAd)
        {
            using (GrupYetkiDAO grupYetkiDAO = new GrupYetkiDAO())
            {
                return grupYetkiDAO.GrupYetkiVarMiKontrolYeni(grupID, fonksiyonAd);
            }
        }

        [WebMethod(Description = "BosDegerMi")]
        public bool BosDegerMi(string deger)
        {
            using (GenelDAO genel = new GenelDAO())
            {
                return genel.BosDegerMiKontrol(deger);
            }
        }

        [WebMethod(Description = "SqlInjectionControl")]
        public bool SqlInjectionControl(string text)
        {
            using (GenelDAO genel = new GenelDAO())
            {
                return genel.SqlInjectionControl(text);
            }
        }

        [WebMethod(Description = "YetkilendirmeLogKaydet")]
        public bool YetkilendirmeLogKaydet(string metotAdi, object gelenObject, object gidenObject, string gelenParametre, long kullaniciRef)
        {
            using (ObjectVeXmlDAO objectVeXmlDAO = new ObjectVeXmlDAO())
            {
                XmlDocument xmlGelenDoc = null;
                XmlDocument xmlGidenDoc = null;

                if (gelenObject != null)
                    xmlGelenDoc = objectVeXmlDAO.CreateXML(gelenObject);

                if (gidenObject != null)
                    xmlGidenDoc = objectVeXmlDAO.CreateXML(gidenObject);

                return objectVeXmlDAO.YetkilendirmeLogKaydet(metotAdi, xmlGelenDoc, xmlGidenDoc, gelenParametre, kullaniciRef);
            }
        }

        [WebMethod(Description = "DuyuruGetir")]
        public List<Duyuru> DuyuruGetir()
        {
            using (DuyuruDao duyuruDao = new DuyuruDao())
            {
                return duyuruDao.DuyuruGetir();
            }
        }

        [WebMethod(Description = "AktifDuyuruGetir")]
        public List<Duyuru> AktifDuyuruGetir()
        {
            using (DuyuruDao duyuruDao = new DuyuruDao())
            {
                return duyuruDao.AktifDuyuruGetir();
            }
        }

        [WebMethod(Description = "DuyuruGuncelle")]
        public Duyuru DuyuruGuncelle(Duyuru duyuru)
        {
            using (DuyuruDao duyuruDao = new DuyuruDao())
            {
                return duyuruDao.DuyuruGuncelle(duyuru);
            }
        }

        [WebMethod(Description = "DuyuruKaydet")]
        public Duyuru DuyuruKaydet(Duyuru duyuru)
        {
            using (DuyuruDao duyuruDao = new DuyuruDao())
            {
                return duyuruDao.DuyuruKaydet(duyuru);
            }
        }

        [WebMethod(Description = "DuyuruGetirIDDen")]
        public Duyuru DuyuruGetirIDDen(long ID)
        {
            using (DuyuruDao duyuruDao = new DuyuruDao())
            {
                return duyuruDao.DuyuruGetirIDDen(ID);
            }
        }

        [WebMethod(Description = "IletisimGetir")]
        public Iletisim IletisimGetir()
        {
            using (IletisimDao iletisimDao = new IletisimDao())
            {
                return iletisimDao.IletisimGetir();
            }
        }
    }
}
